// src/app.ts
import Koa from 'koa';
import bodyParser from 'koa-bodyparser';
import dotenv from 'dotenv';
import router from './routes';
dotenv.config();
const port = process.env.PORT || 3000; // 使用默认端口 3000
const nodeEnv = process.env.NODE_ENV || 'development'; // 使用默认开发环境
const secretKey = process.env.SECRET_KEY; // 获取密钥

const app = new Koa();

// 使用koa-bodyparser中间件以解析JSON请求体
app.use(bodyParser())
// 添加路由
app.use(router.routes())
// 错误处理中间件
app.on('error', (err, ctx) => {
  if (nodeEnv === 'development') {
    // 在开发环境中，将错误信息输出到控制台
    console.error('Error occurred:', err);
  } else {
    // 在生产环境中，可以记录错误到日志文件，或采取其他适当的处理方式
    // 例如，您可以使用日志记录工具如 Winston 或 Bunyan 来记录错误到文件
    // 或将错误信息发送给监控系统
    // 这里仅是示例，您可以根据需求自定义处理
  }

  // 返回适当的错误响应
  ctx.status = 500; // Internal Server Error
  ctx.body = 'Internal Server Error';
});

app.listen(port, () => {
  console.log(`Server is running on http://localhost:${port}`);
});
